1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
<?php /** * 冒泡排序实现函数(PHP) * @param $nums * @return mixed */ function bubble_sort($nums) { for ($i = 0; $i < count($nums); $i++) { for ($j = 0; $j < count($nums) - $i - 1; $j++) { if ($nums[$j] > $nums[$j+1]) { $temp = $nums[$j]; $nums[$j] = $nums[$j+1]; $nums[$j+1] = $temp; } } } return $nums; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
//快速排序 //待排序数组 $arr=array(6,3,8,6,4,2,9,5,1); //函数实现快速排序 function quick_sort($arr) { //数组元素有多个,则定义两个空数组 $left=$right=array(); //使用for循环进行遍历,把第一个元素当做比较的对象 for($i=1;$i<$length;$i++) { //判断当前元素的大小 if($arr[$i]<$arr[0]){ $left[]=$arr[$i]; }else{ $right[]=$arr[$i]; } } //递归调用 $left=quick_sort($left); $right=quick_sort($right); //将所有的结果合并 return array_merge($left,array($arr[0]),$right); } //调用 print_r(quick_sort($arr)); |
综合比较前面介绍的三个排序算法,时间复杂度都是一样的,也都是原地排序,但是选择排序是不稳定的排序算法,此外,插入排序和冒泡排序相比较,我们在将插入排序的时候讲到,插入排序只需要一条语句,而冒泡排序需要三条,在同等条件下,或者数据量很大的情况下,插入排序性能是要优于冒泡排序的,所以综合比较下来,三者的优先级是插入排序 > 冒泡排序 >> 选择排序。
「三年博客,如果觉得我的文章对您有用,请帮助本站成长」
共有 0 - 常用算法(php实现)